package com.probiz.estore.product.service;

import java.util.List;

import com.probiz.estore.common.model.product.ProductAttGroupItem;
import com.probiz.estore.common.model.product.ProductType;
import com.probiz.estore.core.service.GenericManager;

/**
 * Manager interface for ProductAttGroupItem, responsible for business processing, and communicate between web and persistence layer.
 *
 */
public interface ProductAttGroupItemManager extends GenericManager<ProductAttGroupItem> {
	/**
	 * 根据属性id和商品类型id查找ProductAttGroupItem
	 * @param productTypeId 商品类型id
	 * @param attributeId 属性id
	 * @return ProductAttGroupItem
	 */
	public ProductAttGroupItem getProductAttGroupItemByProductTypeAndAttribute(
			Integer productTypeId, Integer attributeId);

	/**
	 * 保存attrItem 从arrays中获取必要的参数
	 * @param productType 商品类型
	 * @param attrItemGroupIds groupIds集合
	 * @param attrItemIds ids集合
	 * @param attrItemSortOrders sortOrder集合
	 * @param attrItemIsQuickSearchs isQuickSearch集合
	 * @param attrItemShowStyles showStyle集合
	 * @param attrItemSearchValues searchValue集合
	 * @param attrItemAttributeIds attributeId集合
	 * @return List<String> 返回保存后的attrItem的主键
	 */ 
	public List<String> saveAttrItemsFromArrays(
			ProductType productType, String[] attrItemGroupIds,
			String[] attrItemIds, String[] attrItemSortOrders,
			String[] attrItemIsQuickSearchs, String[] attrItemShowStyles,
			String[] attrItemSearchValues, String[] attrItemAttributeIds);
	/**
	 * 根据商品类型id获得下快速搜索属性的个数
	 * @param productTypeId 商品类型id
	 * @return Long
	 */
	public Long getNumOfQuickSearchAttItemsByProductTypeId(Integer productTypeId);

	/**
	 * 根据商品类型id获得所有快速搜索属性
	 * @param productTypeId 商品类型id
	 * @return ProductAttGroupItem
	 */
	public List<ProductAttGroupItem> getQuickSearchAttItemsByProductTypeId(Integer productTypeId);
}
